{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "270b45c6",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "from sklearn.linear_model import LogisticRegression\n",
    "from sklearn.metrics import classification_report\n",
    "from sklearn import metrics\n",
    "import matplotlib.pyplot as plt\n",
    "from sklearn.metrics import RocCurveDisplay\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "57da2667",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<bound method DataFrame.info of      Sample code number  Clump Thickness  Uniformity of Cell Size  \\\n",
      "0               1000025                5                        1   \n",
      "1               1002945                5                        4   \n",
      "2               1015425                3                        1   \n",
      "3               1016277                6                        8   \n",
      "4               1017023                4                        1   \n",
      "..                  ...              ...                      ...   \n",
      "694              776715                3                        1   \n",
      "695              841769                2                        1   \n",
      "696              888820                5                       10   \n",
      "697              897471                4                        8   \n",
      "698              897471                4                        8   \n",
      "\n",
      "     Uniformity of Cell Shape  Marginal Adhesion  Single Epithelial Cell Size  \\\n",
      "0                           1                  1                            2   \n",
      "1                           4                  5                            7   \n",
      "2                           1                  1                            2   \n",
      "3                           8                  1                            3   \n",
      "4                           1                  3                            2   \n",
      "..                        ...                ...                          ...   \n",
      "694                         1                  1                            3   \n",
      "695                         1                  1                            2   \n",
      "696                        10                  3                            7   \n",
      "697                         6                  4                            3   \n",
      "698                         8                  5                            4   \n",
      "\n",
      "    Bare Nuclei  Bland Chromatin  Normal Nucleoli  Mitoses  Class  \n",
      "0             1                3                1        1      2  \n",
      "1            10                3                2        1      2  \n",
      "2             2                3                1        1      2  \n",
      "3             4                3                7        1      2  \n",
      "4             1                3                1        1      2  \n",
      "..          ...              ...              ...      ...    ...  \n",
      "694           2                1                1        1      2  \n",
      "695           1                1                1        1      2  \n",
      "696           3                8               10        2      4  \n",
      "697           4               10                6        1      4  \n",
      "698           5               10                4        1      4  \n",
      "\n",
      "[699 rows x 11 columns]>\n"
     ]
    }
   ],
   "source": [
    "# 1. 获取数据：各个列名（原始数据里没有给出列索引）\n",
    "names = ['Sample code number',\n",
    "         'Clump Thickness', 'Uniformity of Cell Size', 'Uniformity of Cell Shape',\n",
    "         'Marginal Adhesion', 'Single Epithelial Cell Size', 'Bare Nuclei',\n",
    "         'Bland Chromatin', 'Normal Nucleoli', 'Mitoses',\n",
    "         'Class']\n",
    "# 读取网络数据\n",
    "data = pd.read_csv(\"breast-cancer-wisconsin.data\",names=names)\n",
    "print(data.info)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "0f30af57",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 2. 数据基本处理\n",
    "# 2.1 缺失值处理 —— 将?替换为NaN，然后删除NaN\n",
    "data = data.replace(to_replace=\"?\", value=np.NaN)\n",
    "data = data.dropna()\n",
    "# 2.2 确定特征值(第一列不是特征值)和目标值(最后一列)以便分割数据\n",
    "x = data.iloc[:, 1:3]\n",
    "y = data['Class']\n",
    "# 2.3 分割数据\n",
    "x_train, x_test, y_train, y_test = train_test_split(x, y, random_state=22, test_size=0.2)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "509965eb",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 3. 特征工程 —— 特征预处理 标准化\n",
    "transfer = StandardScaler()\n",
    "x_train = transfer.fit_transform(x_train)\n",
    "x_test = transfer.fit_transform(x_test)\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "29ccc59a",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "训练样本预测准确率: 0.940\n",
      "测试样本预测准确率: 0.964\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([[1.71310634, 3.62193641]])"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 4. 机器学习 —— 逻辑回归\n",
    "model =  LogisticRegression(C=1e10, fit_intercept=True)\n",
    "model.fit(x_train, y_train)\n",
    "print(\"训练样本预测准确率: {:.3f}\".format(model.score(x_train, y_train)))#训练样本预测对的个数 / 总个数\n",
    "print(\"测试样本预测准确率: {:.3f}\".format(model.score(x_test, y_test)))#测试样本预测对的个数 / 总个数\n",
    "model.coef_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "181f89dc",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "预测正确总数：\n",
      "132\n"
     ]
    }
   ],
   "source": [
    "# 5. 模型评估（准确率、分类评估报告）\n",
    "predict_target=model.predict(x_test)\n",
    "predict_target\n",
    "predict_target_prob=model.predict_proba(x_test)  \n",
    "predict_target_prob\n",
    "predict_target_prob_lr=predict_target_prob[:,1]\n",
    "df=pd.DataFrame({'prob':predict_target_prob_lr,'target':predict_target,'labels':list(y_test)})\n",
    "df.head()\n",
    "print('预测正确总数：')\n",
    "print(sum(predict_target==y_test))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "aefef0ea",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "训练样本：\n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "           2       0.94      0.96      0.95       355\n",
      "           4       0.93      0.90      0.91       191\n",
      "\n",
      "    accuracy                           0.94       546\n",
      "   macro avg       0.94      0.93      0.93       546\n",
      "weighted avg       0.94      0.94      0.94       546\n",
      "\n",
      "[[342  13]\n",
      " [ 20 171]]\n"
     ]
    }
   ],
   "source": [
    "print('训练样本：')\n",
    "predict_Target=model.predict(x_train)\n",
    "print(metrics.classification_report(y_train,predict_Target))\n",
    "print(metrics.confusion_matrix(y_train, predict_Target)) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "2ee40e53",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "测试样本：\n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "           2       0.96      0.99      0.97        89\n",
      "           4       0.98      0.92      0.95        48\n",
      "\n",
      "    accuracy                           0.96       137\n",
      "   macro avg       0.97      0.95      0.96       137\n",
      "weighted avg       0.96      0.96      0.96       137\n",
      "\n",
      "[[88  1]\n",
      " [ 4 44]]\n"
     ]
    }
   ],
   "source": [
    "print('测试样本：')\n",
    "predict_target=model.predict(x_test)\n",
    "print(metrics.classification_report(y_test,predict_target))\n",
    "print(metrics.confusion_matrix(y_test, predict_target))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "95ba1a9e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 1.0, 'ROC Curve (Test Set)')"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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tLS0hKmpqWjYsKFYsmTJNy/Ol65WrVpi8ODBWT6f1anSGzZsEHXr1hW6urrCwMBA1KxZU0yePFm8fv1aCPH16sd9+vQRZcqUkV3or2PHjuLGjRty67ly5YqoW7eu0NLS+u5p4QEBAWLUqFGiRo0awsjISGhqaooyZcqIAQMGiCdPnmTof/78eeHi4iKMjIyEjo6OqFChghgwYIBchtTUVDF69GhRsmRJIZFI5F7r/fv3v3sFZ6L8iveWIqIia/v27Rg1ahQiIiJy5WywgmzcuHG4ePEigoKCeLYUFTgsboioyJJKpahVqxb69OmT6VymourDhw8oW7Ys9u3bh/bt26s6DpHCWNwQERFRocKzpYiIiKhQYXFDREREhQqLGyIiIipUWNwQERFRoVLkbr8glUrx+vVrGBgY8PRGIiKiAkIIgU+fPsHS0hJqat8emylyxc3r169hbW2t6hhERESUAy9evICVldU3+xS54sbAwADA151jaGio4jRERESUHXFxcbC2tpZ9jn9LkStu0g9FGRoasrghIiIqYLIzpYQTiomIiKhQYXFDREREhQqLGyIiIipUWNwQERFRocLihoiIiAoVFjdERERUqLC4ISIiokKFxQ0REREVKixuiIiIqFBhcUNERESFikqLm4sXL6JTp06wtLSERCLB4cOHv7uMv78/7O3toa2tjYoVK8LPzy/XcxIREVHBodLiJiEhAbVr18bq1auz1f/Zs2fo0KEDWrRogZCQEIwbNw5DhgzByZMnczkpERERFRQqvXFmu3bt0K5du2z3X7duHcqVK4elS5cCAKpWrYrLly9j+fLlcHFxya2YBZIQAm/ikpAqlao6ChERFTFaGmowM9BR2fYL1F3BAwMD4ezsLNfm4uKCcePGZblMUlISkpKSZI/j4uJyK16+suDYfWy89EzVMYiIqAhJjXuP5KiHaOzcHgdHNlJZjgJV3ERFRaFUqVJybaVKlUJcXBw+f/4MXV3dDMssXLgQs2fPzquI+catl7EAAE11CdSycXt4IiKiHxH/+DqijiyFuo4+1Fqp9mhKgSpucmLatGmYMGGC7HFcXBysra1VmChvrexdB+1rWqg6BhERFXLdum1ASssm8PPzg6mpqUqzFKjixtzcHG/evJFre/PmDQwNDTMdtQEAbW1taGtr50U8IiKiIuX58+eIiIhAkyZNsHPn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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#  绘制ROC曲线，计算AUC值\n",
    "RocCurveDisplay.from_estimator(model, x_test, y_test)\n",
    "x = np.linspace(0, 1, 100)\n",
    "plt.plot(x, x, 'k--', linewidth=1)\n",
    "plt.title('ROC Curve (Test Set)')"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
